'''
  类的继承：用来扩展类的方式。实用场景：开发者在实用第三方工具时，但又嫌其功能不够完善时，可以在其基础上进行扩展
  object类是所有类的基类，未指定父类时，默认就是object类

  在Java语言中，一个子类只能继承自一个父类-----单一继承
  在Python中，一个子类可以继承自多个父类 class A(B,C) ----- 多重继承
  多重继承缺点：难以维护
  怎么解决：组合 --- 在子类中直接实例化依赖的类， 或者init接收依赖的类作为参数
'''
class Employee(object):
  def __init__(self, name) -> None:
    self.name = name
  def login(self):
    print('Employee Login')
  def test(self):
    self.__test()
  def _test(self):
    print('_test')
  def __test(self):
    self._test()
    print('__test')

class Manager(Employee):
  # 覆盖父类的方法
  def login(self):
    print('Manager Login')
    self._test()
    # self.__test() # 子类不能访问private函数
  def manage(self):
    print('Manager can manage sb.')

ep = Employee('Jane')
ep.login()
ep.test()
mg = Manager('Alice')
mg.login()
mg.manage()
